#include <iostream>

using namespace std;

//思路，n为可以走的步数
//1.当它向左边走时，后面只有两种可能：要么向上，要么向左
//2.当它向右边走时，后面只有两种可能：要么向上，要么向右
//3.当它向上走时，后面有三种可能：要么向上，要么向左，要么向右
//对于1，公式为：left[i] = up[i-1]+left[i-1]
// 对于2，公式为：right[i] = up[i-1]+right[i-1]
// 对于3，公式为：up[i] = left[i-1]+right[i-1]+up[i-1]
// 对于任意点f[i] = left[i] +right[i] +up[i]=2f[i-1]+f[i-2]
// 当n为1时，f[1]=3
// 当n为2时，f[2]=7

int main() {
    int n;
    cin >> n;
    int data[10001];
    data[1] = 3;
    data[2] = 7;
    for(int i = 3;i <= n;i++) {
        data[i] = 2 * data[i-1] + data[i-2];
    }

    cout << data[n] << endl;
}